package cmd

import (
	"fmt"
	"github.com/spf13/cobra"
)

var (
	isTest         bool
	currentVersion = "1.0.beta"
	setVersion     string
)

var versionCmd = &cobra.Command{
	Use: "version",
	//Short: "version 显示命令版本",
	//Long: `version 显示命令版本
	//		-- test 测试模式
	//		-- version 设置版本号
	//`,

	PreRun: func(cmd *cobra.Command, args []string) {
		if setVersion != "" {
			fmt.Println("从外部设置了 版本号：", setVersion)
			currentVersion = setVersion
		} else {
			fmt.Println("使用默认版本号：", currentVersion)
		}

	},
	Run: func(cmd *cobra.Command, args []string) {
		if isTest {
			fmt.Println("测试版本迭代中，请忽略版本号")
		}
		fmt.Println("版本号：" + currentVersion)
	},
}

func init() {
	rootCmd.AddCommand(versionCmd)
	// --test -t
	versionCmd.Flags().BoolVarP(&isTest, "test", "t", false, "指示当前是否为测试阶段")
	//默认情况下，flag是optional（选填），
	//若flag为必填，则需要 MarkFlagRequired
	versionCmd.MarkFlagRequired("test")
	// --version -v
	versionCmd.Flags().StringVarP(&setVersion, "version", "v", "", "设置版本号")

}
